QT for Android 捕获多点触控的示例 - sbw Blog

QT for Android 捕获多点触控的示例

来源: 石博文博客 | 浏览: 12360 | 评论: 0 发表时间: 2014-02-16

从QT5.1开始,就慢慢加入了对Android的支持,虽然在Android上一直是Java开发占大多数,但由于Qt的结构成熟,功能强大,笔者最近也尝试了一下Qt的嵌入式开发.Qt为手持设备提供了触摸事件,但必须显式的设置接收触摸事件,之后的事件捕获与绘图都和PC上面差不多了.



Qt for Android Multi-touch

本文将实现一个多点触控的画图小程序,以演示Qt的多点触控.


示例代码下载

Qt程序默认不会产生触摸事件,因为触摸事件其实是由鼠标的一些事件生成的,要设置使用触摸事件,需要设置属性:


然后就可以捕获触摸事件了,这里我们重写event方法来捕获:


在event事件中,如果事件是一个触控事件,就交给添加线段的函数处理.


由于Qt已经完全开源,所有的类属性成员都可以从文档查到,这里就不多做介绍,不过要说明的是,在获得的TouchPoint中,包含本次点击位置pos()和上次点击位置lastPos(),当一个触摸事件刚产生时,lastPos()会被置为当前元素(0, 0)位置,所以在这里我没有使用TouchBegin事件,过滤掉了这个默认点.


最后,addLine函数会把所以滑过的线段保存起来,在控件的paintEvnet中,再将它们画出来,程序的功能就完成了:


下面是部署到真机上的测试效果,其中左边就是使用了TouchBegin时,会产生一个起始的(0, 0)点,右边是使用3个手指同时操作的效果:

Qt for Android Multi-touch event


没有人评论过此文,还不快抢个沙发
  • 昵称: *
  • 邮箱:
  • 网址:
  • 记住我的信息
  • Color
  • Red
  • Blue
  • Code
  • bash
  • cpp
  • css
  • java
  • js
  • perl
  • php
  • python
  • ruby
  • sql
  • xml